package serveur;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.PrintWriter;

import javax.swing.Timer;

public class Joueur implements Comparable<Joueur>{
    
		private String login;
        private int score;
        private int erreur;
        private PrintWriter pw;
        private Timer chronoErreur; //timer pour reinitialiser le nombre d'erreur toutes les 30s,
        				   //le joueur sera exclu s'il donne 3 mauvaise reponse en moins de 30s
       
        public Joueur(String login,PrintWriter pw){
                this.login = login;
                this.pw = pw;
                ActionListener al = new ActionListener() {

                	@Override
                	public void actionPerformed(ActionEvent arg0) {
                		erreur = 0;

                	}
                };
                chronoErreur = new Timer(30000, al);
                chronoErreur.setRepeats(false);
        }
       /**
        * 
        * @param ajouter entier a ajouter au score actuel
        */
        public void incrementeScore(int ajouter){score+=ajouter;}
        public int getScore(){return score;}
        
        /**
         * augmente le nombre d'erreur et lance le timer si c'est la 1ere
         */
        public void incrementeErreur(){
        	if(erreur==0) 
        		chronoErreur.start();
        	
        	erreur++;
        }
        public int getErreur(){return erreur;}
              
        public String getLogin(){return login;}
 
        public void fermerPrinteWriter() {pw.close();}
        /**
         * 
         * @param message String message a envoyer
         */
        public void envoyerMessage(String message){pw.println(message);}
        
        @Override
        public int compareTo(Joueur o) {
        	return login.compareTo(o.getLogin());         
        }
        /**
         * Initialise le nombre de points et d'erreur a 0
         */
		public void initPointsErreurs() {
			chronoErreur.stop();
			score = 0;
			erreur = 0;
			
		}
}
